We only called xdg_toplevel.(un)set_maximize() if the toplevel layout
changed, but this misses the case when the compositor had changed the
maximized state. Change it to call the xdg_toplevel request if either
the local layout changed, or if the layout differs from the current
state.
This fixes an issue where one couldn't unmaximize a window by double
clicking the titlebar that, had previously been maximized e.g. using a
keyboard binding.
Do the same for fullscreen.
return TRUE;
if (gdk_toplevel_layout_get_maximized (impl->toplevel.layout) !=
+ gdk_toplevel_layout_get_maximized (layout) ||
+ !!(surface->state & GDK_TOPLEVEL_STATE_MAXIMIZED) !=
gdk_toplevel_layout_get_maximized (layout))
return TRUE;
return TRUE;
if (gdk_toplevel_layout_get_fullscreen (impl->toplevel.layout) !=
+ gdk_toplevel_layout_get_fullscreen (layout) ||
+ !!(surface->state & GDK_TOPLEVEL_STATE_FULLSCREEN) !=
gdk_toplevel_layout_get_fullscreen (layout))
return TRUE;